#include <stdio.h>
#include <string>
#include <iostream>

struct Person {
public:
    Person(){}
    Person(const std::string _name, int _age){
        name = _name;
        age  = _age;
    }
public:
    int age;
    std::string name;
};

Person operator+(const Person& lhs, const Person& rhs) {
    Person p;   // 
    p.name = lhs.name + rhs.name;   // 
    p.age  = lhs.age + rhs.age;
    return p; // return
}


std::ostream& operator<<(std::ostream& os, const Person p) {
    os << p.name << ", " << p.age << std::endl;
    return os;
}


int main(int argc, char** argv) {
    Person p1("hsk", 16);
    Person p2("ljh", 16);

    Person p = p1 + p2;

    std::cout << p1 + p2 << std::endl;
    // std::cout << p.name << ", " << p.age << std::endl;

    return 0;
}